#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>
typedef int HPDataType;
struct Heap 
{
    HPDataType* a;
    int size;//堆中元素个数
    int capacity;//容量
};
typedef struct Heap HP;
//初始化
void HeapInit(HP* hp);
//释放
void HeapDestory(HP* hp);
//打印
void HeapPrint(HP* hp);
//得到堆顶数据
HPDataType HeapTop(HP* hp);
//出堆顶数据
void HeapPop(HP* hp);
//插入元素
void HeapPush(HP* hp,HPDataType x);
//堆是否为空
bool HeapEmpty(HP* hp);
//堆元素个数
int HeapSize(HP* hp);